<?php

namespace DeCMF\Core\Config\Attribute;

/**
 * 系统配置中定义的多选枚举式属性格式解析
 */
class Enum
{

    /**
     * 分析枚举类型配置值 
     * @param string $string 格式 a:名称1,b:名称2,名称2 每组值可以由, ; 或换行分隔
     * @return array 键值对
     */
    public static function parse($string)
    {
        $array = preg_split('/[,;\r\n]+/', trim($string, ",;\r\n"));
        if (strpos($string, ':')) {
            $value = [];
            foreach ($array as $val) {
                list ($k, $v) = explode(':', $val);
                $value[$k] = $v;
            }
        } else {
            $value = $array;
        }
        return $value;
    }

}
